/*
 * Eddash Bello
 * Eduardo Bello Castañeda
 */
import articulo.Articulo;
import articulo.aditamento.casa.*;
import articulo.comida.*;
import articulo.comida.vegetal.*;
import animal.Pelar;
import animal.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import persona.*;
import animal.ave.*;
import animal.can.lobo.*;
import animal.can.perro.*;
import animal.felino.gato.*;
import animal.felino.tigre.*;
import animal.pez.*;
import animal.reptil.*;
import animal.roedor.*;
import java.util.InputMismatchException;
import persona.Persona;
import java.util.Scanner;
public class TiendaDeMascotas {
    static Animal []mascota;
    static Articulo[]art;
    static{
        art=new Articulo[]{new CAve("Jaula para aves","Canario o perico",100),
        new CCan("Casa para canes","Perro o lobo",500),new CGatoHuron("Casa para gato o hurón","Gato o hurón",400),
        new CHamster("Jaula para hámster","Hámster",120),new CPezReptil("Pecera","Peces o reptiles",300),
        new Croquetas("Croquetas","Perro, gato o hámster",60),new Insecto("Insectos","Serpientes, lagartijas o peces",40),
        new Alpiste("Alpiste","Canarios o pericos",80),new Trigo("Trigo","Hámster",30),new Verdura("Vegetales","Hurón",50)};
    }
    static{
        mascota=new Animal[]{new Canario("Piolin",800,"Alpiste"),new Perico("Polly",600,"Alpiste"),
            new Artico("Akita",15000,"Carne humana"),new Estepario("Herman Heese",20000,"Carne de mujer"),
            new BassetHound("Hush Puppie",1500,"Croquetas"),new GoldenRetriever("Bobby",1000,"Croquetas"),
            new Labrador("Billy",1000,"Croquetas"),new PastorAleman("Dingo",2500,"Croquetas"),
            new PastorIngles("Ruffo",3000,"Croquetas"),new Angora("Tebas",2000,"Cualquier animal"),
            new Siames("Garfield",3000,"Cualquier animal"),new Sphynx("Egipcio",4000,"Cualquier animal"),
            new Bengala("Tigger",25000,"Cualquier animal"),new Blanco("Tygra",100000,"Cualquier animal"),
            new DientesDeSable("Diego",300000,"Cualquier carne"),new Beta("Betha",25,"Insectos"),
            new Japones("Dorado",50,"Insectos"),new Serpiente("Naghini",2000,"Insectos"),
            new Lagartija("Reptilia",50,"Insectos"),new Colacuerno("Norberto",7000,"Todo!"),
            new Hamster("Hamtaro",150,"Trigo"),new Huron("Timon",800,"Vegetales") };
    }

    public static void main(String[] args) {
        String cuidador="CUIDADOR",cliente="CLIENTE";
        System.out.println("Bienvenido a -KOTA\n");
                
        /*for (int i = 0; i < mascota.length; i++) {
            if(mascota[i] instanceof GoldenRetriever){
                mascota[i].gruñir();
            }            
        }*///para imprimir al momento de comprar      
        Scanner reader=new Scanner(System.in);
        System.out.println("¿Es usted cuidador o cliente?"+"\nEscriba CUIDADOR "
                + "o CLIENTE segun corresponda");
        String x=reader.nextLine();
        System.out.println("Usted escogió: "+x);
        
        if(x.equalsIgnoreCase(cuidador)){
            Cuidador v=new Cuidador("Veterinario","Cuidador");
            System.out.println("Nombre: Veterinario\nOcupación: Cuidador");
            System.out.println("Debe realizar las tareas de alimentar y cuidar");
            System.out.println("Ahora alimentara a los animales");
            for(int i=0;i<mascota.length;i++){
               if(mascota[i] instanceof Alimentar){
                    try {
                        Thread.sleep(300);
                    } catch (InterruptedException ex) {
                    }
                   mascota[i].serAlimentado();             
               }
            }
            System.out.println("Y ahora cuidara de ellos");
            for(int i=0;i<mascota.length;i++){
               if(mascota[i] instanceof Pelar){
                   try {
                        Thread.sleep(300);
                    } catch (InterruptedException ex) {
                    }
                   mascota[i].serPelado();
               }
            }    
            for(int i=0;i<mascota.length; i++) {
                if(mascota[i] instanceof Limpiar){
                    try {
                        Thread.sleep(300);
                    } catch (InterruptedException ex) {
                    }
                    mascota[i].limpiarPico();
                }              
            }
            for(int i=0;i<mascota.length; i++) {
                if(mascota[i] instanceof Acariciar){
                    try {
                        Thread.sleep(300);
                    } catch (InterruptedException ex) {
                    }
                    mascota[i].serAcariciado();
                }                  
            }
            System.out.println("Finalizó sus tareas, ¿gusta hacer algo mas?, "
                    + "si es asi reinicie el programa\nPresione 1 para reiniciar, o 0 para finalizar");
            int h=reader.nextInt();
            try {
                if (h==1) main(args);
                else if(h==0)
                System.out.println("Vuelva pronto");
                else
                    System.out.println("Comando no reconocido");
            } catch (Exception e) {
                
            }               
        }
        else if(x.equalsIgnoreCase(cliente)){
            Cliente c=new Cliente("Comprador compulsivo","Cliente");
            System.out.println("Nombre: Comprador Compulsivo\nOcupación: Cliente");
            System.out.println("¿Quiere ver el catalogo?\nPresione 1 para afirmar, o 2 para negar");
            int cat=reader.nextInt();
            if(cat==1){
                System.out.println("A continuación se muestra el catalogo de mascotas");
           
                for (int i = 0; i < mascota.length; i++) {
                    try {
                            Thread.sleep(300);
                        } catch (InterruptedException ex) {
                        }
                    System.out.println(i+1);mascota[i].imprimir();
                }
                System.out.println("En seguida el catalogo de artículos para su mascota");
                for (int i = 0; i < art.length; i++) {
                    try {
                            Thread.sleep(300);
                        } catch (InterruptedException ex) {
                        }
                    System.out.println(i+23);art[i].imprimir();
                }
            }
            else{}
            System.out.println("Ahora escriba el numero identificador de cada mascota "
                    + "o articulo seguido de la tecla ENTER para llenar su carrito. "
                    + "Recuerde que solo se pueden 10 articulos.");
            
            double suma=0;
            for (int i = 0; i < 10; i++) {
                int valor=reader.nextInt();
                if(valor==1){
                    suma+=800;   
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Canario){
                            mascota[j].gruñir();
                         }            
                    }             
                }
                else if(valor==2){
                    suma+=600;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Perico){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==3){
                    suma+=15000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Artico){
                            mascota[j].gruñir();
                         }            
                    }  
                }
                else if(valor==4){
                    suma+=20000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Estepario){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==5){
                    suma+=1500;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof BassetHound){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==6){
                    suma+=1000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof GoldenRetriever){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==7){
                    suma+=1000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Labrador){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==8){
                    suma+=2500;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof PastorAleman){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==9){
                    suma+=3000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof PastorIngles){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==10){
                    suma+=2000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Angora){
                            mascota[j].gruñir();
                         }            
                    }         
                }
                else if(valor==11){
                    suma+=3000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Siames){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==12){
                    suma+=4000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Sphynx){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==13){
                    suma+=25000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Bengala){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==14){
                    suma+=100000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Blanco){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==15){
                    suma+=300000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof DientesDeSable){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==16){
                    suma+=25;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Beta){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==17){
                    suma+=50;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Japones){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==18){
                    suma+=2000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Serpiente){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==19){
                    suma+=50;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Lagartija){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==20){
                    suma+=7000;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Colacuerno){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==21){
                    suma+=150;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Hamster){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==22){
                    suma+=800;
                    for (int j = 0; j < mascota.length; j++) {
                         if(mascota[j] instanceof Huron){
                            mascota[j].gruñir();
                         }            
                    } 
                }
                else if(valor==23){
                    suma+=100;
                }
                else if(valor==24){
                    suma+=500;
                }
                else if(valor==25){
                    suma+=400;
                }
                else if(valor==26){
                    suma+=120;
                }
                else if(valor==27){
                    suma+=300;
                }
                else if(valor==28){
                    suma+=60;
                }
                else if(valor==29){
                    suma+=40;
                }
                else if(valor==30){
                    suma+=80;
                }
                else if(valor==31){
                    suma+=30;
                }
                else if(valor==32){
                    suma+=50;
                }
                
                
                
            
            }
            System.out.println("El monto a pagar es: "+suma);
        }
        else{
            System.out.println("Comando no reconocido, intente de nuevo");
        }
    }
    
}
